﻿//////////////////////////////////////////////////////////////////////////////
//
//  Copyright © 1998-2024 Glodon Company Limited.  All rights reserved.
//
//  Use of this software is subject to the terms of the Glodon license
//  agreement provided at the time of installation or download, or which
//  otherwise accompanies this software in either electronic or hard copy form.  
//
//////////////////////////////////////////////////////////////////////////////


#pragma once        
#include "IFamilyGeometryConstraint.h"
#include "GmFamilyService.h"


namespace gfam
{

    /// \brief  对齐约束
    ///
    /// 支持直线和直线、点和点、直线和点、圆和点、圆弧和点对齐
    class GM_FAMILY_SERVICE_EXPORT IFamilyAlignConstraint : public IFamilyGeometryConstraint
    {
        DEFINE_CAST_DERIVED(gfam::IFamilyAlignConstraint, gfam::IFamilyGeometryConstraint)
    public:

        /// \brief 创建对齐约束
        /// 
        /// \param pDocument 文档
        /// \param sketchId 草图id
        /// \param option 创建选项
        /// \return 对齐约束
        static IFamilyAlignConstraint* Create(gcmp::IDocument* pDocument, const gcmp::ElementId& sketchId, gcmp::ElementCreationOptions option = gcmp::ElementCreationOptions::Normal);

    };
}